package cn.car.service.remote;

import cn.car.domains.dto.*;
import cn.car.domains.entity.VehicleCommonInfoEntity;
import cn.car.domains.entity.VehicleCommonLedgerInfoEntity;
import cn.car.domains.entity.VehicleEntryExitInfoEntity;
import cn.car.domains.entity.VehicleEntryExitLedgerInfoEntity;
import cn.car.domains.enums.InoutTypeEnum;

import java.io.IOException;

public interface TjRemoteService {

    /**
     * 获取token
     */
    AccessTokenDto getAccessToken(String username, String password) throws IOException;

    /**
     * 上报车辆备案信息接口
     */
    BaseResponse putRegisterVehicleInfo(VehicleEntryExitInfoEntity entryExitInfoEntity, VehicleCommonInfoEntity vehicleCommonInfoEntity) throws IOException;

    /**
     * 获取缓存token
     */
    String getLocalAccessToken();


    /**
     * 上报车辆通行记录信息接口
     */
    BaseResponse putVehiclePassRecords(VehicleCommonInfoEntity vehicleCommonInfoEntity, VehicleCommonLedgerInfoEntity vehicleCommonLedgerInfoEntity, VehicleEntryExitInfoEntity entryExitInfoEntity, VehicleEntryExitLedgerInfoEntity ledgerInfoEntity, InoutTypeEnum passStatus) throws IOException;

    /**
     * 信息同步接口
     */
    SyncInfoDto syncInfo() throws IOException;

    /**
     * 违规通行车辆名单查询接口
     */
    VehicleBlackPassDtoList getBlackVehiclePassInfos() throws IOException;


    /**
     * 黑名单车辆查询接口
     */
    VehicleBlackDtoList getBlackVehicleInfos() throws IOException;


    /**
     * 移动源管控措施查询接口
     */
    ControlStrategyDto getControlStrategy() throws IOException;
}
